package com.tlkj.common.curd.mapper;

import com.github.pagehelper.Page;
import com.tlkj.common.curd.entity.Api;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * API - Mapper
 * @author flyong86
 */
public interface ApiMapper {

    /**
     * 通过接口地址查询API.
     * @param path 路径
     * @return API
     */
    Api selectByPath(@Param("path") String path, @Param("enable") Boolean enable);

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Api queryById(String id);

    /**
     * 分页查询指定行数据
     *
     * @param api      查询条件
     * @return 对象列表
     */
    List<Api> queryAllByLimit(@Param("api") Api api, @Param("startRow") long startRow, @Param("pageSize") int pageSize);

    /**
     * 分页查询指定行数据
     *
     * @param api      查询条件
     * @return 对象列表
     */
    int queryCount(@Param("api") Api api);

    /**
     * 新增数据
     *
     * @param api 实例对象
     * @return 影响行数
     */
    int insert(Api api);

    /**
     * 更新数据
     *
     * @param api 实例对象
     * @return 影响行数
     */
    int update(Api api);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(String id);

    /**
     * 根据MenuId统计数量.
     * @param menuId 目录ID
     * @return 数量
     */
    long countByMenuId(String menuId);

}
